﻿<?php
require_once( ROOT_DATA_ACCESS_OBJECT . 'DataAccessObject.class.php');
require_once( ROOT_DATA_OBJECT . 'DataObject.class.php');

class DoadorBO extends DataAccessObject {
	
	function listarDoadores($instanceDB, $limit, $start, $filter){
		
		$sqlQuery = "SELECT ";
		$sqlQuery .= "* ";
		$sqlQuery .= "FROM ";
		$sqlQuery .= "Pessoa a, Doador b ";
		$sqlQuery .= "WHERE ";
		$sqlQuery .= "a.codigo = b.Pessoa_codigo ";
		if($filter != ""){
			$sqlQuery .= "AND (b.nomeEmpresa LIKE '%".$filter."%' OR ";
			$sqlQuery .= "a.cpf = '".$filter."' OR ";
			$sqlQuery .= "a.rg = '".$filter."' OR ";
			$sqlQuery .= "b.cnpj = '".$filter."') ";
		}
		
		$sqlQuery .= "ORDER BY b.nomeEmpresa ";
		
		$quantidadeRegistros = $this->quantidadeRegistros($instanceDB, $sqlQuery);

		// Controle da paginação
		if($limit != "" && $start != ""){
			$sqlQuery .= "LIMIT ".$start.",".$limit." ";
		}
		
		$listAlunos = $this->execute( $instanceDB, $sqlQuery, "SELECT" );
		
		$result = array("object" => $listAlunos, "qtdRegistros" => $quantidadeRegistros);
		
		return $result;
		
	}
	
	
	function quantidadeRegistros($instanceDB, $sqlQuery){
		$qtdRegistros = $this->execute( $instanceDB, $sqlQuery, "SELECT" );
		return count($qtdRegistros);
	}
	
	function capturarDoador($instanceDB, $dataObject){
		
		$sqlQuery = "SELECT * FROM Pessoa a, Doador b WHERE a.codigo = ".$dataObject->get("Pessoa_codigo")." AND a.codigo = b.Pessoa_codigo ORDER BY a.nome";
		return $this->execute( $instanceDB, $sqlQuery, "SELECT" );
	
	}
	
	function inserir( $instanceDB, $dataObject ){
		$resultado = $this->insert( $instanceDB, $dataObject );
		if ( $resultado ){
			return $this->capturarDoador( $instanceDB, $dataObject );
		}
		return FALSE;
	}
	
	function alterar( $instanceDB, $dataObject ){
		return $resultado = $this->update( $instanceDB, $dataObject );
	}
	
	function excluir( $instanceDB, $dataObject ){
		return $this->delete( $instanceDB, $dataObject );
	}
	
		
}
?>
